<?php
class UsuariosController extends AppController {
    public $name = 'Usuarios';
    public $uses = array('Usuarios','usuarioprivilegios','privilegios');
    public $components = array('Session');
    public $helpers = array('Html','Form');
    
    function index() {
        $this->layout = "principal";
        $this->set('title_for_layout', 'Carga Academica' );
        //$this->set('usuarios', $this->Usuarios->find('all'));
     }
    
    public function daralta() {
        /*validacion*/  $cuenta=0;
        foreach ($_SESSION['Privilegios'] as $priv){ if ($priv[0]['idprivilegio']==3){
            $cuenta=$cuenta+1;
            /*validacion*/
            $this->layout = "principal";
            $sql = "select  * from usuarios as b, empleados as a  where a.idempleado=b.idempleado and b.estado =0 ";

            if ($this->request->is('post')) {
                $busquedaorg = $this->request->data;
                //  pr($busquedaorg);
                $sql = $sql."and lower(b.nombreusuario) like lower('%".$busquedaorg['Usuarios']['Nombre de Usuario']."%')";
                //pr($sql);
            }
            $usuarios = $this->Usuarios->query($sql);
            //pr($usuarios);

            $this->set('usuarios',$usuarios);

            /*validacion*/
        }  }
        if($cuenta==0)
        {$this->redirect(array('controller'=>'home','action'=>'index'));}
        /*validacion*/

    }//fin de funcion

    public function daralta2($id=null ){
        /*validacion*/
        $cuenta=0;
        foreach ($_SESSION['Privilegios'] as $priv){ if ($priv[0]['idprivilegio']==3){
            $cuenta=$cuenta+1;
            /*validacion*/
            if (!$this->request->is('post')) {
                throw new MethodNotAllowedException();
            }
            $logueado=$this->Session->read('User.Usuarios.id_usuario');

            if($this->Usuarios->query("select dar_baja_usuario(".$id.",2);")){
                $this->Usuarios->query("select update_usuariopriv_bitacora(".$logueado.")");

            }
            $this->redirect(array('controller'=>'usuarios','action' => 'index'));

            /*validacion*/
        }  }
        if($cuenta==0)
        {$this->redirect(array('controller'=>'home','action'=>'index'));}
        /*validacion*/


    }//fin de funcion



    public function filtros() {
        /*validacion*/  $cuenta=0;
        foreach ($_SESSION['Privilegios'] as $priv){ if ($priv[0]['idprivilegio']==21){
            $cuenta=$cuenta+1;
            /*validacion*/
            $this->layout = "principal";
            $op = $this->Usuarios->query("select  distinct operacion from bitacoras");
            $tab = $this->Usuarios->query("select distinct tabla from bitacoras");

            $this->set('oper',$op);
            $this->set('tabla',$tab);
            
            $operacion="Login";
            $tabla="Bitacora";


            if ($this->request->is('post')) {
                $parametros= $this->request->data;

                $operacion=$parametros['operacion'];
                $tabla=$parametros['tabla'];

            }
                $consulta= $this->Usuarios->query("select * from bitacoras where operacion ='".$operacion."' and tabla='".$tabla."';");
                $this->set('consulta',$consulta);
            /*validacion*/
        }  }
        if($cuenta==0)
        {$this->redirect(array('controller'=>'home','action'=>'index'));}
        /*validacion*/

    }//fin de funcion

    public function cusuario(){

      /*validacion*/
        $cuenta=0;
        foreach ($_SESSION['Privilegios'] as $priv){ if ($priv[0]['idprivilegio']==1){
            $cuenta=$cuenta+1;
            /*validacion*/

        $this->layout = "principal";
        if ($this->request->is('post')){
            $a= $this->request->data;
           // pr($a);
            $ident=$a['idempleado'];
            $nom=$a['nombreusuario'];
            $pass=$a['password'];
            // pr($ident);
          //  echo "select insertar_usuario( '".$ident."','"."$nom"."','".$pass."' );";
           if($this->Usuarios->query("select insertar_usuario( '".$ident."','"."$nom"."','".$pass."' );")){
                $us=$this->Usuarios->query("select id_usuario,nombreusuario from usuarios where idempleado= '".$ident."' ");
                //pr($us);
                //parametros a pasar a la funcion siguiente
               $idu=$us[0][0]['id_usuario'];
               $name=$us[0][0]['nombreusuario'];


               // enviamos $idu=id de usuario del empleado recien creado,
               //$nom= nombre del usuario del empleado recien creado,
               //
               $this->redirect(array('action' => 'crearusuario',$idu,$nom));

           }

        }
       /*validacion*/
        }  }
        // En caso de no tener los privilegios
        if($cuenta==0)
        {$this->redirect(array('controller'=>'home','action'=>'index'));}
        /*validacion*/



    }// fin de la funcion

    public function crearusuario($p1=null,$p3=null) {
        /*validacion*/  $cuenta=0;
        foreach ($_SESSION['Privilegios'] as $priv){ if ($priv[0]['idprivilegio']==1){
            $cuenta=$cuenta+1;
            /*validacion*/
        $this->layout = "principal";

        $priv=$this->Usuarios->query("select * from privilegios");
        $logueado=$this->Session->read('User.Usuarios.id_usuario');

        $this->set('priv',$priv);
        $this->set('nombre',$p3);



        if ($this->request->is('post')) {

          $chek=$this->request->data;
          // pr($chek);
            //inserciones en la tabla de usuarios_privilegios

            if(isset($chek['1'])){
              $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['1'].",".$p1.")");
              // echo "select insertar_usuario_privilegio(".$chek['1'].",".$p1.")";
              }

            if(isset($chek['2'])){
                $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['2'].",".$p1.")");
               // echo "select insertar_usuario_privilegio(".$chek['2'].",".$p1.")";
            }

            if(isset($chek['3'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['3'].",".$p1.")");
               // echo "select insertar_usuario_privilegio(".$chek['3'].",".$p1.")";
            }

            if(isset($chek['4'])){
                $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['4'].",".$p1.")");
                //echo "select insertar_usuario_privilegio(".$chek['4'].",".$p1.")";
            }

            if(isset($chek['5'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['5'].",".$p1.")");
               // echo "select insertar_usuario_privilegio(".$chek['5'].",".$p1.")";
            }
            if(isset($chek['6'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['6'].",".$p1.")");
                //echo "select insertar_usuario_privilegio(".$chek['6'].",".$p1.")";
            }
            if(isset($chek['7'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['7'].",".$p1.")");
                //echo "select insertar_usuario_privilegio(".$chek['7'].",".$p1.")";
            }
            if(isset($chek['8'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['8'].",".$p1.")");
                //echo "select insertar_usuario_privilegio(".$chek['8'].",".$p1.")";
            }
            if(isset($chek['9'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['9'].",".$p1.")");
               // echo "select insertar_usuario_privilegio(".$chek['9'].",".$p1.")";
            }
            if(isset($chek['10'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['10'].",".$p1.")");
                //echo "select insertar_usuario_privilegio(".$chek['10'].",".$p1.")";
            }
            if(isset($chek['11'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['11'].",".$p1.")");
                //echo "select insertar_usuario_privilegio(".$chek['11'].",".$p1.")";
            }
            if(isset($chek['12'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['12'].",".$p1.")");
                //echo "select insertar_usuario_privilegio(".$chek['12'].",".$p1.")";
            }
            if(isset($chek['13'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['13'].",".$p1.")");
                  //echo "select insertar_usuario_privilegio(".$chek['13'].",".$p1.")";
            }
            if(isset($chek['14'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['14'].",".$p1.")");
                //echo "select insertar_usuario_privilegio(".$chek['14'].",".$p1.")";
            }
            if(isset($chek['15'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['15'].",".$p1.")");
                //echo "select insertar_usuario_privilegio(".$chek['15'].",".$p1.")";
            }
            if(isset($chek['16'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['16'].",".$p1.")");
                //echo "select insertar_usuario_privilegio(".$chek['16'].",".$p1.")";
            }
            if(isset($chek['17'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['17'].",".$p1.")");
                   //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
            }
            if(isset($chek['18'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['18'].",".$p1.")");
                   //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
            }
            if(isset($chek['19'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['19'].",".$p1.")");
                   //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
            }
            if(isset($chek['20'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['20'].",".$p1.")");
                   //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
            }
            if(isset($chek['21'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['21'].",".$p1.")");
                   //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
            }
            if(isset($chek['22'])){
                 $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['22'].",".$p1.")");
                   //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
            }

         //verificaremos si se realizo una asinacion de privilegios
            $cuenta= $this->Usuarios->query("select count(*) from usuarioprivilegios where id_usuario = '".$p1."'");

            if($cuenta[0][0]['count'] >0){
                 $this->Usuarios->query("select insertar_usuariopriv_bitacora(".$logueado.")");
               $this->redirect(array('controller'=>'usuarios','action' => 'index'));
              }



        }//fin del post

            /*validacion*/
        }  }
        if($cuenta==0)
        {$this->redirect(array('controller'=>'home','action'=>'index'));}
        /*validacion*/

        }//fin de la funcion


	public function consultar() {
	   $this->layout = "principal";
       /** if ($this->request->is('post')) {
            if ($this->Post->save($this->request->data)) {
                $this->Session->setFlash('Your post has been saved.');
                $this->redirect(array('action' => 'index'));
            }
        }**/
    }
    
    public function modificarpass($id = null) {
        $this->layout = "principal";

        //Obtenemos los datos del usuario logueado en el sistema
        $id=$this->Session->read('User.Usuarios.id_usuario');
        $nom=$this->Session->read('User.Usuarios.nombreusuario');
        $oldpass=$this->Session->read('User.Usuarios.password');


        //mandamos de parametro los datos del usuario logueado

       // $this->set('id',$id);
        $this->set('nom',$nom);
        //$this->set('oldpass',$oldpass);

        if ($this->request->is('post')) {

            $datos = $this->request->data;

            $name=$datos['nombre'];
            $old=$datos['oldpassword'];
            $new=$datos['newpassword'];

            //llamamos al procedimiento que modificara la contrasena
           // echo "select cambiar_password(".$id.",'".$name."','".$old."','".$new."')";
           $this->Usuarios->query("select cambiar_password(".$id.",'".$name."','".$old."','".$new."')");
            $this->Usuarios->query("select insertar_usuariopriv_bitacora(".$id.")");
            $this->redirect(array('controller'=>'usuarios','action' => 'index'));



        }


    }//fin de la funcion



    public function modificarprivilegios($p1=null){
        /*validacion*/  $cuenta=0;
        foreach ($_SESSION['Privilegios'] as $priv){ if ($priv[0]['idprivilegio']==2){
            $cuenta=$cuenta+1;
            /*validacion*/

            $this->layout = "principal";

            $datos=$this->Usuarios->query("select * from usuarios where id_usuario = '".$p1."'");
            $nombre= $this->Usuarios->query("select pnombre||' '||papellido as nombres from empleados natural join usuarios where id_usuario= '".$p1."'");

            $priv=$this->Usuarios->query("select * from privilegios order by idprivilegio asc");
            //pr($priv);
            $logueado=$this->Session->read('User.Usuarios.id_usuario');
            $this->set('nombre',$nombre);

            //privilegios que ya tiene seleccionados
            $myrpiv=$this->Usuarios->query("select idprivilegio from usuarioprivilegios where id_usuario =".$p1." order by idprivilegio asc");
            // pr($myrpiv);
            $i=0;
            $j=-1;

            foreach($priv as $p){
                $j=$j+1;
                if(isset($myrpiv[$i][0]['idprivilegio'])){
                    if($p[0]['idprivilegio']==$myrpiv[$i][0]['idprivilegio']){
                        array_push($priv[$j][0],"1");
                        $i=$i+1;
                    }
                }

            }

            $this->set('priv',$priv);
            $this->set('mypriv',$myrpiv);

            if ($this->request->is('post')) {
                $this->Usuarios->query("select eliminar_usuario_priv(".$p1.")");
                //echo "select eliminar_usuario_priv(".$p1.")";
                $chek = $this->request->data;
                //pr($chek);

                //inserciones en la tabla de usuarios_privilegios

                if(isset($chek['1'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['1'].",".$p1.")");
                    // echo "select insertar_usuario_privilegio(".$chek['1'].",".$p1.")";
                }

                if(isset($chek['2'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['2'].",".$p1.")");
                    // echo "select insertar_usuario_privilegio(".$chek['2'].",".$p1.")";
                }

                if(isset($chek['3'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['3'].",".$p1.")");
                    // echo "select insertar_usuario_privilegio(".$chek['3'].",".$p1.")";
                }

                if(isset($chek['4'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['4'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['4'].",".$p1.")";
                }

                if(isset($chek['5'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['5'].",".$p1.")");
                    // echo "select insertar_usuario_privilegio(".$chek['5'].",".$p1.")";
                }
                if(isset($chek['6'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['6'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['6'].",".$p1.")";
                }
                if(isset($chek['7'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['7'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['7'].",".$p1.")";
                }
                if(isset($chek['8'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['8'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['8'].",".$p1.")";
                }
                if(isset($chek['9'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['9'].",".$p1.")");
                    // echo "select insertar_usuario_privilegio(".$chek['9'].",".$p1.")";
                }
                if(isset($chek['10'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['10'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['10'].",".$p1.")";
                }
                if(isset($chek['11'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['11'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['11'].",".$p1.")";
                }
                if(isset($chek['12'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['12'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['12'].",".$p1.")";
                }
                if(isset($chek['13'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['13'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['13'].",".$p1.")";
                }
                if(isset($chek['14'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['14'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['14'].",".$p1.")";
                }
                if(isset($chek['15'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['15'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['15'].",".$p1.")";
                }
                if(isset($chek['16'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['16'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['16'].",".$p1.")";
                }
                if(isset($chek['17'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['17'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
                }
                if(isset($chek['18'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['18'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
                }
                if(isset($chek['19'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['19'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
                }
                if(isset($chek['20'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['20'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
                }
                if(isset($chek['21'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['21'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
                }
                if(isset($chek['22'])){
                    $this->Usuarios->query("select insertar_usuario_privilegio(".$chek['22'].",".$p1.")");
                    //echo "select insertar_usuario_privilegio(".$chek['17'].",".$p1.")";
                }

                //verificaremos si se realizo una asinacion de privilegios
                $cuenta= $this->Usuarios->query("select count(*) from usuarioprivilegios where id_usuario = '".$p1."'");

                if($cuenta[0][0]['count'] >0){
                    $this->Usuarios->query("select update_usuariopriv_bitacora(".$logueado.")");
                    $this->redirect(array('controller'=>'usuarios','action' => 'index'));
                }

            }//fin del post

            /*validacion*/
        }  }
        if($cuenta==0)
        {$this->redirect(array('controller'=>'home','action'=>'index'));}
        /*validacion*/


    }//fin de la funcion


    public function elegirmodificar(){
        /*validacion*/  $cuenta=0;
        foreach ($_SESSION['Privilegios'] as $priv){ if ($priv[0]['idprivilegio']==2){
            $cuenta=$cuenta+1;
            /*validacion*/
            $this->layout = "principal";

            $usuarios= $this->Usuarios->query("select  * from usuarios as b, empleados as a  where a.idempleado=b.idempleado and b.estado =1");
            //pr($usuarios);

            $this->set('usuarios',$usuarios);
           /* if ($this->request->is('post')){
                $a= $this->request->data;

                $id=$a['id_usuario'];
                $n=$this->Usuarios->query("select nombreusuario from usuarios where id_usuario =".$id."");
                $nom=$n[0][0]['nombreusuario'];

                $this->redirect(array('action' => 'modificarprivilegios',$id));
            }*/

            /*validacion*/
        }  }
        if($cuenta==0)
        {$this->redirect(array('controller'=>'home','action'=>'index'));}
        /*validacion*/

    }// fin de la funcion




    function darbaja() {
        /*validacion*/  $cuenta=0;
        foreach ($_SESSION['Privilegios'] as $priv){ if ($priv[0]['idprivilegio']==3){
            $cuenta=$cuenta+1;
            /*validacion*/
        $this->layout = "principal";
         $sql = "select  * from usuarios as b, empleados as a  where a.idempleado=b.idempleado and b.estado =1 ";

        if ($this->request->is('post')) {
            $busquedaorg = $this->request->data;
          //  pr($busquedaorg);
            $sql = $sql."and lower(b.nombreusuario) like lower('%".$busquedaorg['Usuarios']['Nombre de Usuario']."%')";
            //pr($sql);
        }
        $usuarios = $this->Usuarios->query($sql);
        //pr($usuarios);

        $this->set('usuarios',$usuarios);
            /*validacion*/
        }  }
        if($cuenta==0)
        {$this->redirect(array('controller'=>'home','action'=>'index'));}
        /*validacion*/


    }//end funcion



    public function darbaja2($id=null ){
        /*validacion*/
        $cuenta=0;
        foreach ($_SESSION['Privilegios'] as $priv){ if ($priv[0]['idprivilegio']==3){
            $cuenta=$cuenta+1;
            /*validacion*/
        if (!$this->request->is('post')) {
            throw new MethodNotAllowedException();
        }
        $logueado=$this->Session->read('User.Usuarios.id_usuario');
   pr($id);
        if($this->Usuarios->query("select dar_baja_usuario(".$id.",1);")){
            $this->Usuarios->query("select update_usuariopriv_bitacora(".$logueado.")");

        }
       $this->redirect(array('controller'=>'usuarios','action' => 'index'));

            /*validacion*/
        }  }
        if($cuenta==0)
        {$this->redirect(array('controller'=>'home','action'=>'index'));}
        /*validacion*/


    }
	


    function conusuario() {
    /**if (!$this->request->is('post')) {
        throw new MethodNotAllowedException();
    }
    if ($this->Post->delete($id)) {
        $this->Session->setFlash('The post with id: ' . $id . ' has been deleted.');
        $this->redirect(array('action' => 'index'));
    }**/
    }
    
}
?>